package cn.qy.kotlin.base

import cn.qy.kotlin.base.ch11.Player

/**
 * 初始化
 */
fun main() {
    println(Player("jack").auraColor())
    // 默认参数用得越多，调用构造函数的方式也就越多。选择多了就有可能出现混淆的情况。因 此，和之前函数使用的命名参数一样
    println(Player(_name = "Madrigal", 64, isBlessed = true, isImmortal = false))

    class Sword(_name: String) {
        var name = _name
            get() = "The Legendary $field"
            set(value) {
                field = value.toLowerCase().reversed().capitalize()
            }

        // init 可以写多个
        init {
            println(111)
        }

        // init 一般写在定义变量之后
        init {
            name = _name
        }

        init {
            println(222)
        }
    }
    val fff = Sword("fork");
    println(fff.name)
    fff.name = "duck"
    println(fff.name)
}